package com.woniuxy.service;

import com.woniuxy.entity.Residents;
import com.woniuxy.util.ResponseUtil;

/**
 * 居民信息服务接口
 * 定义居民信息相关的业务操作方法
 */
public interface ResidentsService {
    /**
     * 查询所有居民信息
     * @return 返回所有居民信息的响应结果
     */
    ResponseUtil queryAllShow(Integer pageNum, Integer pageSize);
    
    /**
     * 根据居民ID查询居民信息
     * @param residentId 居民ID
     * @return 返回指定居民ID的居民信息的响应结果
     */
    ResponseUtil queryByResidentId(Integer residentId);
    
    /**
     * 根据居民ID更新居民信息（删除操作）
     * @param residentId 居民ID
     * @return 返回更新居民信息的响应结果
     */
    ResponseUtil updateForDelete(Integer residentId);
    
    /**
     * 更新居民信息
     * @param residents 居民信息对象
     * @return 返回更新居民信息的响应结果
     */
    ResponseUtil update(Residents residents);
    
    /**
     * 根据居民ID查询居民详细信息
     * @param residentId 居民ID
     * @return 返回指定居民ID的详细信息的响应结果
     */
    ResponseUtil queryAllDetails(Integer residentId);
    
    /**
     * 根据居民ID查询最近一次的居民信息
     * @param residentId 居民ID
     * @return 返回指定居民ID的最近一次信息的响应结果
     */
    ResponseUtil queryRecentOne(Integer residentId);
    
    /**
     * 根据登录ID查询居民信息
     * @param loginId 登录ID
     * @return 返回指定登录ID的居民信息的响应结果
     */
    ResponseUtil queryById(Integer loginId);
    
    /**
     * 修改居民信息
     * @param resident 居民信息
     * @return 修改结果
     */
    ResponseUtil updateResident(Residents resident);

    /**
     * 根据类型查询健康历史记录
     * @param residentId 居民ID
     * @param type 健康指标类型
     * @return 返回指定类型的健康历史记录
     */
    ResponseUtil getHealthHistoryByType(Integer residentId, String type);

    /**
     * 根据居民ID查询服务团队的成员
     * @param residentId 居民ID
     * @return 返回该居民所属服务团队的成员列表
     */
    ResponseUtil queryServiceTeamMembersByResidentId(Integer residentId);

    /**
     * 根据医生ID查询其所在团队管理的所有患者
     * @param doctorId 医生ID
     * @return 返回居民列表
     */
    ResponseUtil queryResidentsByDoctorId(Integer doctorId);
}
